package Cafezam;

public class J14Ex46CalendarV2 {
	public static void main(String[] args)
	{
		//서기 1년 1월 1일의 [월]요일임
		//그러면 1년 12월 31일의 요일은?
		//1년은 일반적으로 365일
		//하지만,1년이 366일인 경우도 있음(윤년)
		//31,28,31,30,31,30,31,31,30,31,30,31(평년)
		//31,29,31,30,31,30,31,31,30,31,30,31(윤년)
		//윤년: 4로 나누어지되,100으로 나누어 떨어지지 않거나
		//400으로 나누어 떨어지는 년도
		
		
		//0:일,1월,2화,3수,4목,5금,6토,7일
		//위 내용을 토대로,1년 12월 31일의 요일은
		
		int myday;
		int cyear=2014;
		int allday=365;
		int leapyear=0;

		
		//윤년 횟수 계산
		for(int i=1;i<=cyear;i++){
		if((i%4==0&&i%100!=0)||i%400==0)
		{
			++leapyear;
		}
		}//윤년계산
		
		
		//총일수 계산후 7로 나눈 나머지 계산
		myday=((cyear*allday)+leapyear)%7;
		
		//달력 출력
		String result="\n\t\t\t   "+(cyear+1)+"년\n";
		result+="\t--------------";
		result+="년 1월";
		result+="\t--------------\n";
		result+="\t일\t월\t화\t수\t목\t금\t토\n";
	
		//공백처리
		int linecount=0;
		if(myday>0)
		{
			for(int i=0;i<=myday;i++)
			{
				result+="\t";
				++linecount;
				
			}
		}
		
		//날짜출력
		for(int k=1;k<=31;k++)
		{
			result+="\t"+k;
			++linecount;
			if(linecount%7==0)
			{
				result+="\n";
			}
		}
		System.out.println(result);

	
	
	
	}

}
